λ nix run
Nix applicationを実行する
docs
remoteのものにも、localのものにも使える
remoteに対して使う例
$ nix run nixpkgs#vim
Vimのバイナリが降ってきてVimが起動される
$ nix run nixpkgs#vim -- --help
option指定する際は--
これは、雑に言えば、npxと近いmrsekut.icon
localに対して使う例
λ nix run .
current dirのflake.nixに対して実行
これは、雑に言えばnpm runにギリ近いmrsekut.icon
具体的に何が実行されるかは、その対象のFlake Outputsの記述に依存する
$ nix run blender-binのように実行した場合は、この辺が見られる
apps.<system>.default
packages.<system>.default
$ nix run blender-bin#blender_2_83のように#でnameを指定すれば、この辺が見られる
apps.<system>.<name>
packages.<system>.<name>
legacyPackages.<system>.<name>
code:flake.nix
apps.x86_64-linux.blender_2_79 = {
type = "app";
program = "${self.packages.x86_64-linux.blender_2_79}/bin/blender";
};
環境だったりバージョンだったりを区別するのだろうmrsekut.icon
しらんけど
(mrsekut.iconは、Flake Outputsにappsとかpackagesを書けることの理解を保留している)
例えば、dotfilesでhome-managerを適用するコマンドが複数あって混乱したmrsekut.icon
$ nix run home-manager -- switch --flake .#mrsekut
home-managerを落としてきて実行する
$ home-manager switch --flake .#mrsekut
localにあるhome-managerを使って実行する